package com.wish.wishsystem_management.controller;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wish.wishsystem_management.entity.SysDept;
import com.wish.wishsystem_management.entity.SysRole;
import com.wish.wishsystem_management.entity.SysUser;
import com.wish.wishsystem_management.entity.TbBusiness;
import com.wish.wishsystem_management.service.ISysDeptService;
import com.wish.wishsystem_management.service.ISysRoleService;
import com.wish.wishsystem_management.service.ISysUserService;
import com.wish.wishsystem_management.service.ITbBusinessService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 商户表 前端控制器
 * </p>
 *
 * @author zhaiwj
 * @since 2021-03-22
 */
@RestController
@RequestMapping("/tbBusiness")
public class TbBusinessController {
    @Autowired
    ITbBusinessService iTbBusinessService;


//    注入  部门  角色 用户 iSysDeptService  iSysRoleService  iSysUserService


    @Autowired
    private ISysDeptService iSysDeptService;

    @Autowired
    private ISysRoleService iSysRoleService;

    @Autowired
    private ISysUserService iSysUserService;


    //list  list  list    listlist  list  list及list查  st
    @RequestMapping("/list")
    public IPage list(Page page) {
        IPage iPage = iTbBusinessService.list2(page);
        return iPage;

    }
    //list  list  list    listlist  list  list及list查  ed



    //dels dels dels dels dels dels dels dels  st
//纯 前台
    // dels dels dels dels dels dels dels dels  ed


//updupdupdupdupdupdupd  不通过  st

    @RequestMapping("/update")
    public void add(Integer id) {

        TbBusiness tbBusiness = new TbBusiness();
        tbBusiness.setId(id);

        tbBusiness.setStatus(2);

        iTbBusinessService.updateById(tbBusiness);
        System.out.println("修改修改修改修改修改修改修改修改修改修改");

    }

    // updupdupdupdupdupdupd  不通过 ed


//通过通过通过通过通过通过通过通过通过通过通过通过通过通过通过通过 st

    @RequestMapping("/audit")
    public String audit(Integer id) {

        TbBusiness tbBusiness = new TbBusiness();
        tbBusiness.setId(id);
//    注入  部门  角色 用户 iSysDeptService  iSysRoleService  iSysUserService

//        部门判断     部门判断    部门判断    部门判断    部门判断    部门判断
        List<SysDept> deptList = iSysDeptService.queryList2(id);


        if (CollectionUtils.isEmpty(deptList) || deptList.size() == 0) {
            return "请在部门下添加商户";
        }


        Long deptId = deptList.get(0).getDeptId();

//        角色判断 角色判断  角色判断角色判断  角色判断 角色判断  角色判断角色判断


        List<SysRole> roleList = iSysRoleService.queryList2(deptId, id);

        if (CollectionUtils.isEmpty(roleList)) {
            return "请在角色下添加商户角色";
        }

        for (SysRole rr : roleList
        ) {
            System.out.println(rr + "((((((999999999))))))))");
        }


//        用户判断用户判断用户判断用户判断用户判断用户判断用户判断用户判断
        List<SysUser> userList = iSysUserService.queryList2(deptId, id);

        if (CollectionUtils.isEmpty(userList)) {
            return "请在用户下添加商户用户";
        } else {
            List<Long> roleidlist = new ArrayList<>();
            for (int i = 0; i < roleList.size(); i++) {
                SysRole role = roleList.get(i);
                roleidlist.add(role.getRoleId());//保存rowid 的集合
            }

            SysUser user = userList.get(0);

            user.setRoleIdList(roleidlist);
            user.setApprovalFlag(1);


            iSysUserService.updateUser2(user);
        }


//        修改 Status 修改 Status修改 Status修改 Status修改 Status修改 Status
        tbBusiness.setStatus(1);
        iTbBusinessService.updateById(tbBusiness);

        return "审核通过";

    }
//通过通过通过通过通过通过通过通过通过通过通过通过通过通过通过通过 ed




}

